Print Control Program, Print Control Apparatus, And Print Control Method

ABSTRACT

According to the present invention, a print control apparatus for displaying a print preview, comprises the units adapted to: spool print data created by application; issue a rendering instruction of the spooled print data to a graphic engine together with output information indicating one of a preview setting and a print setting; return a response about one of a color profile for previewing when the output information indicates the preview setting and a color profile for printing when the output information indicates the print setting, as a response to an inquiry about a color profile from the graphic engine that receives the rendering instruction; and display image data rendered by the graphic engine when the output information indicates the preview setting, and outputting the rendered image data to the printer when the output information indicates the print setting.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a print control program, print controlapparatus, and print control method, which have a display function of apreview image of an image to be printed on a paper sheet based on printdata created by application software, a change function of a paper typeand the like, and so forth.

2. Description of the Related Art

A print preview function which temporarily displays an image to beprinted on the display of a host computer before the image is actuallyprinted on a paper sheet upon printing application data such as text,graphics, and the like created by application software or the like isknown. The user can confirm the layout and the like of an image to beformed on a paper sheet by checking the image to be printed using thisprint preview function. An application program normally provides theprint preview function. Note that an image to be displayed by thepreview function will be referred to as a preview image and displaying apreview image will be referred to as previewing hereinafter.

A printer driver can also change a layout and the like since it has moreadvanced functions. Since the preview function provided by theapplication program cannot display a layout changed by the function ofthe printer driver, a function of previewing an image which reflects alayout change by the printer driver is demanded.

On the other hand, upon displaying and printing an image, colors to beexpressed must not depend on devices. That is, a color indicated by aspecific value on a given color system must be output as the same colorby another device. Especially, the preview function is required to matchthe colors of an image to be printed with those of an image to bepreviewed. To meet such requirement, the latest operating system (OS)includes a color management function of matching the colors of anoriginal image with those to be displayed on a display and that to beprinted by a color printer. This function is also called a colormatching function. As one of methods of implementing the color matchingfunction, a method using files called color profiles, which define colorattributes of respective devices is available. As a color matchingtechnique using color profiles, a technique in which a printer driverand printer selectively use color profiles for a display and printer tomatch the display colors with the print colors of the printer has beenproposed (see Japanese Patent Laid-Open No. 2003-244468).

In order to reflect the layout processing executed by the printer driverin a preview image, the printer driver must display the preview image.However, with this processing, the preview image is displayed in colorsdifferent from those to be printed.

This is because data used by the printer driver to display a previewimage has undergone color matching processing for a printer device bythe OS. That is, in order to print data, the application program calls arendering function provided by the OS. Then, the OS outputs a renderingcommand that has undergone color matching for a printer to the printerdriver. For this reason, when the printer driver displays a previewimage using that rendering command intact, the preview image with normalcolors cannot be displayed.

FIGS. 2A and 2B are views for explaining a preview image with a colorthat has undergone matching for a printer. A generally prevalentpersonal computer uses Windows® available from Microsoft Corporation asan OS, and the color of an original image is expressed on an RGB colorsystem. FIGS. 2A and 2B show a rendering example of a text image “BLUE”with a color designated by (R=0, G=0, and B=255) from an application101. FIG. 2A shows a state in which the application 101 displays a textimage “BLUE” on a display 112 when the user creates data. FIG. 2B is adiagram for explaining the print processing to a printer 107 and thepreview processing on the display 112. Note that data goes through agraphic device interface (GDI) 102 in the OS when the application 101renders the data on the display 112 and when a printer graphics driver(the rendering function of the printer driver) 106 displays a previewimage. However, in the following description, such processing will beomitted. The application 101 may execute color matching processing whenit displays data on the display 112. However, in the followingdescription, the application 101 does not execute matching. The GDI 102is generally called a graphic engine or the like.

When the user observes data using the application 101, the application101 renders a rendering instruction of a text image “BLUE” in a colorcorresponding to color information (R=0, G=0, B=255) on the display 112.The display result is an image 113. On the other hand, when the userprints data using the printer 107, the application 101 sends a renderinginstruction to the printer 107 via the GDI 102. The color managementfunction in the GDI 102 applies color matching to the color informationR=0, G=0, B=255) included in the rendering instruction using a colorprofile 114 which saves color characteristics of the printer 107. As aresult, the color information is converted into values (R=90, G=70,B=255) in the example shown in FIG. 2B. Then, the rendering instructionhaving color information (R=90, G=70, B=255) is output to the printer107 via the printer graphics driver 106. The printer 107 executes printprocessing according to the received rendering instruction. The outputcolor of a print result 110 by the printer 107 looks as the same coloras the display color of a display result 113 since it has undergonecorrection (color matching) according to the color characteristics ofthe printer 107.

In order to display a preview image by the printer driver, the printergraphic driver 106 must execute preview processing. Input data to theprinter driver has undergone color matching using the color profile 114for the printer 107 by the color management function in the GDI 102.Hence, the color information has already been converted into values(R=90, G=70, B=255). Since this color information used to display apreview image, when a preview image 111 is displayed on the display 112,its color is different from the display result 113 by the application101, and the preview image is displayed to have a color different fromthe original color.

To prevent this, the printer driver or printer itself executes colormatching without using the GDI. However, the method of executing colormatching in the printer driver or printer poses a problem that therendering function of the OS that renders text and the like can nolonger be used. This is because the rendering function of the OS worksin collaboration with the color management function of the OS. That is,since there is no means for converting color information of the OS fromoutside the OS, even when the color matching function provided by theprinter driver is used to convert colors, it cannot pass the convertedcolor information to the OS. For this reason, if the rendering functionof the OS is used, rendering is done using the color before conversionby the color matching function as an input color. In this manner, uponexecuting the color matching in the printer driver or printer, therendering function of the OS cannot be used.

In order to display a preview image, rendering may be made using its ownrendering function without using that of the OS. In this manner, colorconversion for display may be applied to the rendering result to attaincolor matching for preview. However, in this case, upon makingcomplicated rendering, the display result on the display may bedifferent from the print result of the printer due to the specificationsdifferent from the rendering function of the OS. A new function addedupon upgrading the OS version cannot be supported, and the printfunction may not normally work. Furthermore, high cost is required todevelop a rendering engine.

Upon developing a unique color management function without using that ofthe OS, a problem of variations of colors output as a result of colormatching is posed. For example, the color matching result may not oftenbe satisfactory depending on the conversion method used by the uniquelydeveloped color management function and its arithmetic precision. Ifdevices selectively use the color management function of the OS and theunique one, colors to be originally output as the same colors may beoutput as different colors. Furthermore, a very large number ofspecifications of color profiles are available, and they may be changed.For this reason, it is difficult to maintain compatibility with thespecifications of color profiles that may be used in terms of both costand techniques.

The printer graphics driver 106 may convert a color signal which hasalready undergone matching for the printer into that for the display112. However, since the processing is executed twice, it takes much timeuntil a preview image is displayed. Upon executing the color matchingprocessing between devices with different color gamuts, since a colorwhich cannot be reproduced by a device after conversion must be replacedby another color (gamut mapping), originally different colors may bepreviewed as the same color.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the above priorarts, and has as its object to provide a print control program, printcontrol apparatus, and print control method, which implement quickpreview display that reflects processing applied to print data by aprinter driver, and can attain high-quality preview display the displaycolors of which match print colors.

In order to achieve the above object, the present invention comprisesthe following arrangement. That is, a print control apparatus fordisplaying a print preview on a computer connected to a printer,comprises:

a spool unit adapted to spool print data created by applicationsoftware;

a print processor unit adapted to issue a rendering instruction of theprint data spooled by the spool unit to a graphic engine together withoutput information indicating one of a preview setting and a printsetting;

a color profile determination unit adapted to return a response aboutone of a color profile for previewing when the output informationindicates the preview setting and a color profile for printing when theoutput information indicates the print setting, as a response to aninquiry about a color profile from the graphic engine that receives therendering instruction; and

a printer driver unit adapted to display image data rendered by thegraphic engine on a screen when the output information indicates thepreview setting, and outputting the image data rendered by the graphicengine to the printer when the output information indicates the printsetting.

A print control apparatus according to the present invention comprises:

a response unit adapted to return a response to an inquiry about a colorprofile for printing without returning any response to an inquiry abouta color profile for previewing;

a preview unit adapted to, when the response unit does not return anyresponse to the inquiry about the color profile for previewing, displaya preview based on data which has undergone color matching using a colorprofile with a preview resolution, that is found by a search; and

an output unit adapted to, when the response unit returns the responseto the inquiry about the color profile for printing, output a printercommand based on data which has undergone color matching using the colorprofile for printing.

A print control apparatus comprises:

a response unit adapted to return a response to an inquiry about a colorprofile for printing without returning any response to an inquiry abouta color profile for previewing;

a preview unit adapted to, when the response unit does not return anyresponse to the inquiry about the color profile for previewing, displaya preview based on data which has undergone color matching using adefault color profile of a system; and

an output unit adapted to, when the response unit returns the responseto the inquiry about the color profile for printing, output a printercommand based on data which has undergone color matching using the colorprofile for printing.

According to the present invention, since both print processing andpreview processing use the rendering function and color managementfunction provided by the operating system, accurate color matching andhigh-speed processing can be achieved at the same time.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the arrangement of a printing systemaccording to one embodiment of the present invention;

FIGS. 2A and 2B are views for explaining a preview image with a colorthat has undergone matching for a printer;

FIG. 3 shows an example of a user setting window;

FIG. 4 shows a DEVMODE data structure;

FIG. 5 is a flowchart showing the spool sequence when an applicationrequests to print;

FIGS. 6R and 6B are flowcharts showing the sequence for previewingspooled data in the first embodiment;

FIG. 7 is a flowchart showing the sequence for printing spooled data inthe first embodiment;

FIG. 8 is a flowchart for selecting a color profile 114;

FIGS. 9A and 9B are flowcharts showing the sequence for previewingspooled data in the second embodiment;

FIG. 10 is a flowchart showing the sequence for printing spooled data inthe second embodiment;

FIG. 11 is a flowchart showing the sequence for determining a colorprofile by a GDI 102; and

FIGS. 12A and 12B are flowcharts showing the sequence for previewingspooled data in the third embodiment.

DESCRIPTION OF THE EMBODIMENTS

<Overview>

FIG. 1 is a software block diagram of the present invention. In thisembodiment, a computer 100 is installed with Windows® of MicrosoftCorporation as an operating system. Also, the computer 100 is installedwith an application program (to be referred to as an applicationhereinafter) 101 having a print function. The computer 100 is connectedto a display 112 and printer 107 to form a printing system. The printer107 may be locally connected to the computer or may be shared via anetwork or the like.

The application 101 is a document processing program or the like whichgenerates data to be printed or displayed and has a print function ofgenerated data. A GDI 102 is a software module which provides aninput/output function in the Windows® operating system of MicrosoftCorporation. The GDI 102 generates a rendering instruction according toa called function and parameters, and stores it in an EMF spool file104. The GDI 102 can execute color matching processing using a colorprofile 114 in accordance with an instruction. A color managementfunction provided by Windows® is called ICM. Note that the color profile114 includes a source color profile (not shown) and device colorprofiles. As the device color profile, a plurality of profiles areprepared in correspondence with devices. In this embodiment, a colorprofile 114 a for the display and a color profile 114 b for the printerare prepared. A print processor 105 reads out the spooled renderinginstruction from the spool file 104, and passes it to a printer graphicdriver 106 and previewer 108. In this embodiment, the print processor105 is not included in the OS, and is provided by the vendor of theprinter 107 together with the printer graphic driver 106. The printergraphic driver 106 is a program module which executes specificprocessing for the printer 107. Upon reception of the renderinginstruction, the printer graphic driver 106 executes processing forconverting the rendering instruction into a format that the printer 107can interpret, and so forth. The printer graphic driver 106 generates apreview file 109 used to make preview display by the previewer 108. Thepreviewer 108 makes preview display based on the preview file 109 inaccordance with an instruction from the print processor 105.

Note that the computer 100 is a normal, general-purpose computer, hasresources such as a CPU, memory, disk device, and the like, andimplements functions by the operating system, application, printergraphic driver, and the like when the CPU executes programs. Thesequences of the flowcharts shown in FIG. 5 and subsequent figures areimplemented when the CPU executes programs.

First Embodiment

In this embodiment, upon printing or previewing data created by theapplication 101 by the printer driver, the GDI 102 executes colormatching processing. In order to output both the print result 110 andpreview result 111 to have normal colors, preview data to the display112 and print data to the printer 107 must undergo color matchingprocessing, respectively. Upon previewing and printing, the colormatching processing is executed twice via the GDI 102 having the colormanagement function using the suited color profiles 114 a and 114 b. Thefirst embodiment of the present invention will be described hereinafterwith reference to the accompanying drawings.

In the printing system shown in FIG. 1, the application 101 sends datato be printed to the GDI 102. Normally, the GDI 102 temporarily spoolsthe data received from the application 101 in the EMF spool file 104 asEMF (Enhanced Meta File) data, and issues a print request to the printprocessor 105 upon completion of spooling.

Upon reception of the print request from the GDI 102, the printprocessor 105 launches the previewer 108 as a program used to previewdata. The print processor 105 requests the printer graphic driver(printer driver rendering function) 106 to generate the preview file 109via the GDI 102. The GDI 102 sends an inquiry about a color profile to auser interface driver (a UI function of the printer driver) 103. The GDI102 then executes color matching using a color profile according to anID (also called a name) as a response. For this reason, since the userinterface driver 103 switches the color profile, the GDI 102 can executecolor matching using the color profile 114 a for the display 112.

The GDI 102 loads a rendering instruction from the EMF spool file 104,applies color matching processing for the display 112 to the renderinginstruction, and then sends an output request to the printer graphicdriver 106. The printer graphic driver 106 renders data, correspondingto the output request from the GDI 102 to bitmap data for a preview, andstores the bitmap data in the preview file 109, thus ending theprocessing. Conventionally, upon starting printing after the preview,the printer graphic driver 106 need only convert a rendering instructioninto a command for the printer 107, and output the command to theprinter 107. However, in this embodiment, since the renderinginstruction is output via the GDI 102 again, the process temporarilyreturns to the print processor 105 to apply the color matchingprocessing for the printer 107 by the GDI 102.

Upon reception of the rendering end message from the printer graphicdriver 106, the print processor 105 requests the previewer 108 to startpreviewing. The previewer 108 loads the preview file 109, and displaysit on the display 112 as a preview result 111.

After that, upon reception of a print instruction from the user via thepreviewer 108, the print processor 105 instructs the printer graphicdriver 106 via the GDI 102 to execute the print processing of the EMFspool file 104. In this case, if the user designates color matching, theGDI 102 inquires the user interface driver 103 of a color profile. Sincethe user interface driver 103 returns the name of the color profile 114for the printer 107, the GDI 102 executes color matching using the colorprofile with the returned ID.

The GDI 102 loads rendering instructions from the EMF spool file,executes color matching for the printer 107, and then sends an outputrequest to the printer graphic driver 106. The printer graphic driver106 converts the output request into a command that the printer 107 caninterpret, and outputs the command to the printer 107. The printer 107prints data based on the command as the print result 110.

Note that the application 101 is an application program such as adocument processing program or the like. The OS provides a function ofspooling data in the EMF spool file 104 by the GDI 102, the colormanagement function, the rendering function, and default color profilesof the system. The printer vendor provides the user interface driver103, print processor 105, printer graphic driver 106, previewer 108, andcolor profile 114 b for the printer as a printer driver program. Thevendor of the display 112 provides the color profile 114 a for thedisplay 112.

The processing according to the embodiment of the present invention willbe described below with reference to the flowcharts shown in FIGS. 5 to8. FIG. 5 is a flowchart showing the spool sequence when the applicationrequests, FIGS. 6A and 6B are flowcharts showing the sequence forpreviewing the spooled data, FIG. 7 is a flowchart showing the sequencefor printing the spooled data, and FIG. 8 is a flowchart for selecting acolor profile 114.

<Spooling of Application Data>

The spool processing when the application 101 requests to print will bedescribed below with reference to FIG. 5. Note that the computer 100executes the processing in FIG. 5, but blocks serving as execution mainbodies differ for respective steps. Upon printing data, the application101 requests the user interface driver 103 to display a user settingwindow and to send its setting result via the GDI 102 so as to set theprinter 107 (step S101).

The user interface driver 103 displays the user setting window. FIG. 3shows an example of the user setting window. In this example, a usersetting window 300 allows the user to select a paper type such as plainpaper, photo paper, and the like, the print resolution that influencesprint quality, and a pseudo halftone processing method, in addition tothe paper size. In addition, the user setting window includes a checkbox 301 used to designate execution of the ICM as the color matchingfunction, and a selection box 302 of a color profile of original dataupon execution of the color matching. Furthermore, the user settingwindow includes a check box 303 used to set whether or not to executepreview processing. The user can input desired settings from the userinterface window shown in FIG. 3.

The user interface driver 103 stores these setting results set by theuser in DEVMODE whose data structure is specified by Windows®. ThisDEVMODE is stored in a memory, hard disk device, or the like of thecomputer. Since the DEVMODE is passed from the application 101, the userinterface driver 103 saves the setting results, and returns them to theapplication 101 via the CDI 102 (step S102).

FIG. 4 shows an example of the DEVMODE data structure. As shown in FIG.4, various print setting parameters are stored in DEVMODE. For example,the paper size is stored in a “dmPaperSize” field 401, the paper type isstored in a “dmMediaType” field 402, and the halftone method is storedin a “dmDitherType” field 403 as values. Of these items, since generalitems are defined by Windows®, these values are used, and other specialitems can use values assigned to specific fields by each printer driver.The print resolution is stored in a “dmPrintQuality” field 404 as a DPI(Dot Per Inch) value. As a parameter about whether or not to execute theICM, one of values defined like (1) to (4) below is stored as colormanagement information.

(1) DMICMMETHOD_NONE: not execute ICM processing;

(2) DMICMMETHOD_SYSTEM: execute ICM processing in OS;

(3) DMICMMETHOD_DRIVER: execute ICM processing in printer driver; or

(4) DMICMMETHOD_DEVICE: executes ICM processing in printer.

In this embodiment, one of (1) and (2) is set according to the value ofthe check box 301 on the user interface window 300 in FIG. 3 so as toimplement color management using the color management function of theOS. That is, if the user checks the check box 301, the user interfacedriver 103 sets and stores “DMICMMETHOD_SYSTEM” in a “dmICMMethod” field405; otherwise, it sets and stores “DMICMMETHOD_NONE” in it.

In this embodiment, if the user selects (2) “execute ICM processing inOS” as the color management method, an image can be normally previewedby executing the processing in the sequences shown in FIG. 5 andsubsequent figures. Note that the OS does not define settings about aprofile to be used and information as to whether or not to executepreview processing. Hence, the printer driver uniquely adds data to adevice-unique field “dmDriverData” and subsequent fields to store thesesettings. In the example of FIG. 4, the color profile ID is stored in a“dmxxxxx” field 406 as color profile information, and previewinformation as to whether or not to execute preview processing is storedin a “dmyyyyy” field 407. In this manner, the setting values input fromthe user interface are stored in the DEVMODE.

The application 101 passes print data, and the print settings stored inthe DEVMODE returned in step S102 to the GDI 102 to issue a printrequest (step S103). These data can be passed via, e.g., addresses.

The GDI 102 spools the print data passed from the application 101together with the print settings in the EMF spool file 104 as a standardspool file format of Windows® (step S104)

Upon completion of spooling, the GDI 102 requests the print processor105 to start printing (step S105).

<Preview Processing>

The processing for previewing spooled data will be described below usingFIGS. 6A and 6B. In FIGS. 6A and GB, steps S203, S204, S206, and S207are processes by the Windows® operating system as the GDI and areindicated by double frames.

Upon reception of the print start request in step S105, the printprocessor 105 checks whether or not to preview the print data requestedfrom the CDI 102. Whether or not to preview the print data is determinedbased on the DEVMODE data received in step S102 (step S201). The printprocessor 105 refers to the preview information 407 set using the checkbox 303 on the user setting window 300, and if the value indicating thatthe preview processing is to be executed is stored, the process branchesto step S202. If the user does not select the preview processing on theuser setting window, and it is determined that the preview processing isnot required, the print processor 105 ends the processing in FIGS. 6Aand 6B and starts the next print processing. Note that the previewinformation 407 is available in the field uniquely stored by the printerdriver, but the print processor 105 can refer to the unique field sinceit is prepared and provided together with the printer driver.

If it is determined in step S201 that the preview processing isrequired, the print processor 105 writes a setting (preview designation)corresponding to rendering for the preview processing in the DEVMODE.The print processor 105 may create a new data field in the DEVMODE andmay store the preview designation in that field. However, in this case,the processor 105 writes the preview designation in the resolutionfield. Normally, since the resolution of the display 112 is lower thanthat of the printer 107, rendering for the preview processing can beprocessed at a lower resolution and a higher speed. Hence, uponpreviewing a low resolution for the preview processing is set. Inaddition, since the resolution level can be set as a negative value, theresolution upon previewing can be set at a level different from thatupon printing. As will be described later, note that this embodimentuses the resolution field as output information used by the GDI 102 toidentify whether the output instruction from the print processor 105 isthat for previewing or printing.

The print processor 105 then sends a print request to the GDI 102 basedon the DEVMODE that stores the preview settings (step S202).

Upon reception of the print request, the GDI 102 checks if colormatching is to be executed in the OS. The GDI 102 makes this decision bychecking if the value of a “dmICMMethod” field 405 of the DEVMODE is“DMICMMETHOD_SYSTEM”. If it is determined that color matching need notbe executed, the process branches to step S207 (step S203).

If it is determined in step S203 that color matching is to be executed,the GDI 102 sends an inquiry about the color profile ID to the userinterface driver 103 (step S204). The inquiry uses a functionDrvQueryColorProfile( ). The GDI 102 designates the file name of thesource color profile that represents the color attribute (color system)upon creating the original data by the full path (with folderinformation indicating where the source color profile is stored), anddesignates the file name of the device color profile that represents thecolor attribute (color system) of the device as the output destinationby the full path (with folder information indicating where the devicecolor profile is installed).

Upon reception of the inquiry about the color profile ID, the userinterface driver 103 sets the selection result of the color profile forthe original data stored in the DEVMODE in step S102 in response to theinquiry about the source color profile. On the other hand, the userinterface driver 103 returns the ID of the color profile 114 a forpreviewing or the color profile 114 b for printing depending on whetherthe inquiry about the color profile is an inquiry about that forpreviewing or printing in response to the inquiry about the device colorprofile. In this case, the user interface driver 103 returns the ID ofthe color profile 114 a for previewing (step S205) Note that the CDI 102can pass designation about whether the color profile to be inquired isthe source or device profile and that for previewing or printing using,e.g., the DEVMODE values. More specifically, whether the color profileto be inquired is the source or device profile is designated by anargument (ID) of “DrvQueryColorProfile”.

FIG. 8 shows the processing sequence of the user interface driver 103upon reception of the inquiry. More specifically, the user interfacedriver 103 checks based on the resolution set in the DEVMODE if theinquiry about the name of the color profile 114 is that for previewing(step S401). The resolution of the device is determined for each device,the resolution of the display is lower than that of the printer, and thetwo resolutions never become the same. Hence, if the resolution set inthe DEVMODE matches that of the printer, the user interface driver 103can determine that the inquiry about the color profile name is not thatfor previewing. Also, the user interface driver 103 may compare theresolution with a reference value in this checking processing. Since theresolution level can be set as a negative value, the resolution uponpreviewing can be set at a level different from that upon printing. Ofcourse, an independent parameter indicating whether or not the colorprofile is that for previewing may be assured, and whether or not thecolor profile is that for previewing may be designated by passing thatparameter.

In this case, since the print processor 105 sets the resolution forpreviewing in step S202, the user interface driver 103 returns the name(ID) of the color profile for previewing (S403). As the color profilefor previewing, the color profile 114 a for previewing on the display112 which is used is preferably used. The supply source of the display112 normally distributes this color profile 114 a for the display 112together with the display 112, but the user may register a color profilecreated by himself or herself. Also, a color profile “sRGB Color SpaceProfile.icm” which represents a color space that is most generally usedby the display 112 and is included in the Windows® OS may be used. If itis determined that the color profile is not that for previewing, theuser interface driver 103 returns the ID of that for printing, i.e., thecolor profile 114 b for the printer to the GDI 102 (S402).

Referring back to FIGS. 6A and 6B, the GDI 102 executes color matchingusing the color profile with the ID returned from the user interfacedriver 103 in step S205 (step S206). The GDI 102 sends a print requestwith the print data that has undergone the color matching to the printergraphic driver 106 (step S207).

Upon reception of the print request, the printer graphic driver 106renders the print data passed from the GDI 102 to bitmap data. At thistime, the printer graphic driver 106 renders the print data byreflecting the print settings unique to the printer driver. The printsettings unique to the printer driver include a layout and the likeinput by the user interface provided by the user interface driver 103.The print settings unique to the printer driver are saved in, e.g., thefield unique to the device of the DEVMODE. The print settings unique tothe printer driver include a so-called N-in-1 layout setting which laysout N pages on one sheet in a reduced scale, and the like. Note that theprint processor may designate the N-in-1 processing and the like inplace of the printer graphic driver 106 when it sends a print request tothe GDI in step S202 and the like. That is, at this time, the GDI sendsan output request of data for one page after the N-in-1 processing asrendering data for one page to the printer graphic driver 106.

The rendering processing in this case uses the rendering functionprovided by the GDI 102. For this reason, the GDI 102 executes therendering processing using the color information that has undergone thecolor matching processing for the display. In this case, the printergraphic driver 106 rasterizes the print data for previewing, and storesthe rasterized image (i.e., bitmap data) in the preview file 109 (S208).Since the print processor 105 sets the resolution for previewing in theDEVMODE in step S202, the printer graphic driver 106 can determine instep S208 based on that resolution that the rendering is that forpreviewing in the same manner as in step S401. The data format of thepreview file 109 is not particularly limited as long as the previewer108 can process it. For example, the preview file 109 may bemulti-valued data before halftone processing or binary data after thehalftone processing. Since this preview file 109 stores an imageobtained by converting the print data that has undergone color matchingusing the color profile 114 a for the display 112, the preview image canbe displayed with original colors.

However, since the print data (including the rendering instruction andparameters) corresponding to the output request in step S207 hasundergone color matching for the display 112, if this print data isrendered and is output to the printer 107, an image is printed to havecolors converted for display. For this reason, the color tone of theimage becomes unnatural, and does not match that of the preview image.Hence, upon completion of rendering for the print data for previewingfor one page, the printer graphic driver 106 temporarily ends theprocessing, and returns the process to the print processor 105.

After the preview file 109 is generated and the process returns from theprinter graphic driver 106, the print processor 105 notifies thepreviewer 108 of the end of generation of the preview file 109, andsends a preview request to the previewer 108 (step S209). In response tothis request, the previewer 108 sends the preview file 109 generated instep S208 to the display 112 to display a preview image (step S210).

After that, the previewer 108 waits for an instruction from the usersuch as pressing of a print start button, which is displayed on thepreview window together with the preview image, or the like. Uponreception of the print start instruction from the user, the previewer108 ends the preview processing in response to that print start request,and sends a print start request to the print processor 105 (step S211).

<Print Processing>

The processing for printing spooled data will be described below. Uponprinting the spooled data, as shown in FIG. 7, the print processor 105requests the printer graphic driver 106 to output print data to theprinter 107. In this case, the print processor 105 sets a printdesignation indicating rendering for printing in the DEVMODE. The printprocessor 105 makes the print designation by setting the resolution forprinting in the resolution field of the DEVMODE as in the previewdesignation. Since the resolution for printing is determined for eachprinter model, a value according to the printer used in printing is set.The print processor 105 issues a print request to the GDI 102 based onthe print-designated DEVMODE (step S301).

Upon reception of the output request, the GDI 102 checks if colormatching is required by seeing if the “dmICMMethod” value of the DEVMODEis “DMICMMETHOD_SYSTEM”, as in step S203 (S302). If it is determinedthat color matching is not required, the GDI executes the processes instep S306 and subsequent steps.

If it is determined in step S302 that color matching is executed in theOS, the GDI 102 sends an inquiry about the color profile ID to the userinterface driver 103 (step S303).

The user interface driver 103 returns the ID of the color profile forthe original data stored in the DEVMODE in response to the inquiry aboutthe source color profile as in step S205.

On the other hand, the user interface driver 103 returns the colorprofile for printing or previewing in response to the inquiry about thedevice color profile. In this case, the driver 103 returns the ID of thecolor profile 114 b for printing since the resolution for printing isset in the DEVMODE (step S304).

FIG. 8 shows the processing sequence of the user interface driver 103upon reception of the inquiry. More specifically, the user interfacedriver 103 checks based on the resolution in the DEVMODE if the inquiryabout the color profile ID is that for previewing (step S401). In thiscase, since the print processor 105 sets the resolution for printing instep S301, the user interface driver 103 returns the name (ID) of thecolor profile 114 b for printing (S402).

Referring back to FIG. 7, the GDI 102 executes color matching using thecolor profile with the ID returned from the user interface driver 103 instep S304 (step S305). Next, the GDI 102 requests the printer graphicdriver 106 to output the print data that has undergone color matching(step S306).

Upon reception of the output request, the printer graphic driver 106rasterizes the print data of the EMF spool file passed from the GDI 102to generate bitmap data (step S307). At this time, the printer graphicdriver 106 reflects print settings unique to the printer driver. Therendering processing in this case uses the rendering function providedby the GDI 102. For this reason, the GDI 102 executes the renderingprocessing using the color information that has undergone the colormatching processing for the printer.

The printer graphic driver 106 converts the rendered bitmap data into aprinter command, and sends the printer command to the printer 107 (stepS308).

The print result 110 obtained by outputting and printing the printercommand by the printer 107 is printed to have normal colors which haveundergone correct color matching in accordance with the colorcharacteristics of the printer device, since image data after matchingusing the color profile 114 b for the printer 107 is output. In thisway, this processing ends.

As described above, according to this embodiment, the print processor105 selectively sends an output request of print data for previewing orprinting to the GDI 102. In each request, the print processor 105switches the print setting value to be set in the DEVMODE, whichindicates if the request is that for previewing or printing, and passesthe print setting value to the GDI. In this way, since the userinterface driver 103 passes the designated one of the color profiles forpreviewing and printing to the GDI 102, the GDI 102 can execute colormatching suited to the output destination device.

In this way, a preview image can be normally displayed on the display athigh speed while using the rendering function and color managementfunction on the OS. For this reason, the preview image and print imagematch as well as the print settings unique to the printer driver. Also,expressed colors can be matched.

In this embodiment, the print processor 105 launches the previewer 108,and issues a preview start request. Alternatively, the user interfacedriver 103 may launch the previewer 108, or the printer graphic driver106 may launch the previewer 108 and may issue a preview start request.

Second Embodiment

The first embodiment is implemented by returning the name of the colorprofile 114 by the user interface driver 103. However, this embodimentdescribes a method that does not return any color profile 114.

FIG. 11 is a flowchart showing the sequence for determining the colorprofile 114 used in color matching by the GDI 102. The GDI 102determines one of the source color profile 114 a and device colorprofile 114 b as that used in color matching. In this case, the GDI 102executes the following processing.

The GDI 102 sends an inquiry about the color profile ID using aDrvQueryColorProfile command to the user interface driver 103 first.Note that the user interface driver 103 does not return the ID of thecolor profile in some cases, i.e., when it returns an error in responseto DrvQueryColorProfile or it does not prepare a DrvQueryColorProfilefunction itself. This is because the color profile ID must be determinedbefore shipping of the user interface driver 103 so as to return thecolor profile ID, and if the color profile is switched to that createdby the user, the ID cannot often be acquired.

For this reason, the GDI 102 checks if the user interface driver 103 canacquire the normal color profile ID (step S701). Since the GDI does notoften support DrvQueryColorProfile depending on the OS version, it isalso determined that the user interface driver 103 cannot acquire thenormal color profile ID.

If it is determined in step S701 that the user interface driver 103 cannormally acquire the color profile 114, the GDI 102 determines use ofthe acquired color profile 114 (step S702).

On the other hand, if it is determined in step S701 that the userinterface driver 103 cannot acquire any color profile, the GDI 102searches color profiles associated with the target printer 107 for themost suited color profile 114. Association is to determine thecorrespondence between the installed color profiles and devices that usethe color profiles. The user can associate the color profiles with thedevices using the function of the OS. However, in most cases,association is automatically done when the color profile 114 provided asa part of the printer driver is installed together with the printerdriver.

Normally, the color profile 114 differs depending on the printerresolution, paper type, and halftone method. For this reason, the colorprofile 114 can describe the values of the resolution, paper type, andhalftone method. The GDI 102 selects a color profile 114 whose valuesmatch those of the DEVMODE that stores user setting values, and returnsits ID to the GDI. Hence, the GDI 102 searches the associated colorprofiles for a color profile which has the aforementioned setting itemvalues that match the values of the corresponding items in the DEVMODE.Then, the GDI 102 checks if a corresponding color profile is available(step S703).

If a color profile 114 whose values matches those of the DEVMODE isfound, the GDI 102 determines that this color profile 114 as the devicecolor profile 114 (step S704). Note that the GDI 102 does not search fora source color profile by this method.

If it is determined in step S703 that the color profile 114 whose valuesmatches those of the DEVMODE is not available, and if the GDI 102searches for the source color profile 114, the GDI 102 determines use ofa default color profile of the system (step S705). The GDI 102 selectsthe color profile to be used in the aforementioned sequence.

This embodiment will explain a method that the GDI 102 uses the colorprofile 114 selected from those which are associated with each other,following the procedure in FIG. 11 described above. A description of thesame processes as those in the first embodiment will be omitted, andonly different processes will be explained. Note that the source colorprofile 114 is changed by the same method as in the first embodiment.

FIGS. 9A and 9B are flowcharts showing the sequence for previewingspooled data in this embodiment, and FIG. 10 is a flowchart showing thesequence for printing spooled data.

In FIG. 9A, steps S201 to S204 are common to those in FIG. 6A.

Upon reception of an inquiry about the name of the color profile 114from the GDI 102 in step S204, the user interface driver 103 in thisexample returns an error. Or since this inquiry function itself is notprepared, the function call results in an error. The GDI 102 checks withreference to the return value in response to the function if the colorprofile name is returned (step S501). If one of the aforementionederrors has occurred, the GDI 102 determines that the color profile nameis not returned.

If it is determined in step S501 that the user interface driver 103 doesnot return any color profile name, the GDI 102 searches color profiles114 associated with the printer for an optimal color profile, anddetermines the found color profile as a color profile to be used (stepS502). In this embodiment, since the associated color profile need toinclude the color profile 114 for previewing, the printer vendor mustalso provide this color profile for previewing as a part of the printerdriver program. This color profile for previewing describes theresolution value for previewing as the resolution, but does not describeany paper type and halftone method values. In this way, since theresolution for previewing set in the DEVMODE in step S202 matches thatdescribed in the color profile for previewing, the GDI 102 can determinethe color profile for previewing. Note that the color profile 114 forpreviewing does not describe any paper type and halftone method values,and the paper type and halftone method are used independently of theirvalues.

Next, the GDI 102 executes color matching based on the color profile 114determined in step S502 (step S503). If it is determined in step S501that the color profile name is returned, the CDI 102 executes colormatching using the color profile with the returned ID.

Step S207 and subsequent steps are common to those in FIG. 6B. As aresult, since the preview file 109 stores image data which has undergonecolor matching using the color profile 114 a for previewing, a previewimage is displayed to have normal and natural colors.

The processing for printing spooled data will be described below withreference to FIG. 10. Steps S301 to S303 are common to those in FIG. 7.After the GDI 102 sends an inquiry about the color profile name in stepS303, it checks if a color profile name is sent from the user interfacedriver 103 or this inquiry function itself is not prepared as in stepS501 (step S601).

If an error returns or the inquiry function itself is not prepared, theGDI 102 searches the associated color profiles for a color profile to beused. In this embodiment, the associated color profiles 114 must beprepared in correspondence with the print resolutions, paper types, andhalftone methods, and each color profile 114 describes the printresolution, paper type, and halftone method. However, when differentpaper sheets A and B have the same color characteristics and use thesame color profile 114, if the paper type field of the DEVMODE describesthe same value for paper sheets A and B, the number of color profilescan be reduced. Also, for example, when the color characteristics do notdepend on any halftone method, the color profile 114 does not describethe halftone method. In this way, the color profiles 114 need not beprepared for respective halftone methods, and the number of colorprofiles 114 can be reduced.

Since the print resolution, paper type, and halftone method set in theDEVMODE are designated in step S301, the CDI 102 searches for a colorprofile 114 whose values match those of the DEVMODE, i.e., an optimalcolor profile, and determines it as the color profile to be used (stepS602).

Next, the GDI 102 executes color matching based on the color profile 114determined in step S602 (step S603). If it is determined in step S601that the color profile name is returned, the GDI 102 executes colormatching using the color profile with the returned ID. Step S306 andsubsequent steps are common to those in FIG. 7.

As a result of the above processing, since the print result 110 of data,which is output to and printed by the printer 107, is obtained byprinting rendering data that has undergone color matching using thecolor profile 114 for the printer 107, it is printed to have normal andnatural colors.

As described above, according to this embodiment, a preview image can benormally displayed on the display at high speed while using therendering function and color management function on the OS. For thisreason, the preview image and print image match as well as the printsettings unique to the printer driver. Also, expressed colors can bematched. Even when the user interface driver 103 does not return anyresponse to the inquiry about the color profile name, the GDI can selectand use an appropriate color profile.

Third Embodiment

The above embodiments have explained the method of executing colormatching using a specific color profile 114 for previewing upondisplaying a preview image. This embodiment will describe a method ofdisplaying a preview image using a default color profile of the system.The color profiles 114 also include the default color profile of thesystem.

The application 101 normally displays data on the display 112 duringcreation of that data. At this time, when the application 101 does notmake any designation about color management, default color profiles ofthe system are used as the source color profile that represents thecolor attribute (color space) upon creation of original data, and thedevice color profile of the display 112. For this reason, the previewimage or print result may often be different from the display result 113displayed on the display 112 by the application 101. Such phenomenonoccurs since the application 101 does not support any color management,as described above. However, although one data is displayed on onedisplay, it is not preferable that the data is displayed to havedifferent colors by a data processing route that the user cannot know.

Hence, this embodiment executes previewing so that the display result113 of the application 101 that does not support any color managementand the preview result 111 are displayed to have the same colors. Forthis purpose, upon previewing, color matching is done using the defaultcolor profile 114 of the system.

A description of the same steps as in FIGS. 6A and 6B of the firstembodiment will be omitted, and only different processes will bedescribed hereinafter. Note that the source color profile 114 is changedby the same method as in the first embodiment.

FIGS. 12A and 12B are flowcharts showing the sequence for previewingspooled data in this embodiment. Steps S201 to S204 are common to thosein FIG. 6A. Upon reception of an inquiry about the name of the colorprofile 114 from the GDI 102 in step S204, the user interface driver 103checks if the default color profile name of the system can be acquired.The acquisition method varies depending on OSs, and if the OS has afunction of acquiring the default color profile 114 of the system, thatdefault color profile is used. Since the default color profile of thesystem is fixed depending on the OS version, the default color profilename of the system can be acquired from the version of OS (step S801).

If the user interface driver 103 can acquire the default color profilename of the system in step 801, it returns the acquired default colorprofile name of the system to the GDI 102 (step S802).

If the user interface driver 103 cannot acquire the default colorprofile name of the system in step S801, it returns an error to theinquiry about the color profile name from the GDI 102. The userinterface driver 103 does not return a color profile name (step S803).

If the user interface driver 103 does not return the name of any colorprofile 114 in step S803, the GDI 102 searches the associated colorprofiles for a color profile to be used. This embodiment does not haveany color profile 114 a for previewing as the associated color profiles.That is, all the associated color profiles describe the resolution forprinting as a resolution to be supported, and do not include any colorprofile which matches the DEVMODE that has the preview setting in stepS202. For this reason, the search processing of the GDI 102 fails. Theuser interface driver 103 checks in step S804 if the search processingof the GDI 102 has succeeded. If the corresponding color profile forpreviewing is found, the search processing has succeeded, and the userinterface driver 103 returns its color profile name (ID) to the GDI 102(step S807).

If it is determined in step S804 that the search processing has failed,the user interface driver 103 returns information indicating the failureto the GDI 102. Upon reception of that response from the user interfacedriver 103, the GDI 102 determines the default color profile 114 of thesystem as a color profile to be used (step S805), as described above instep S705.

Next, the GDI executes color matching using the color profile determinedas that to be used (step S806). If the user interface driver 103 returnsthe default color profile name of the system and the search processingof the color profile name has failed, the GDI 102 executes colormatching processing using the default color profile of the system.

As a result, when the user interface driver 103 can acquire the defaultcolor profile name of the system, the preview file 109 stores an imagethat has undergone color matching using the default color profile of thesystem. For this reason, the colors of the display result 113 of theapplication 101 that does not support color management match those ofthe preview image.

The processing upon printing is the same as that in the first or secondembodiment. Hence, as the print result 110 of data which is output toand printed by the printer 107, an image that has undergone colormatching using the color profile 114 for the printer 107 is output. Forthis reason, an image is printed to have natural and normal colors.

As described above, according to this embodiment, a preview image can benormally displayed on the display at high speed while using therendering function and color management function on the OS. For thisreason, the preview image and print image match as well as the printsettings unique to the printer driver. Also, expressed colors can bematched. Even when the user interface driver 103 does not return anyresponse to the inquiry about the color profile name, the GDI can selectand use an appropriate color profile. Since the preview processing isdone using the default color profile of the system, a preview imagehaving the same colors as those of data displayed by the applicationprogram can be displayed.

Note that the objects of the present invention are also achieved bysupplying a storage medium, which records a program code of a softwareprogram that can implement the functions of the above-mentionedembodiments (including the flowcharts shown in FIGS. 5 to 12B) to asystem or apparatus, and reading out and executing the program codestored in the storage medium by a computer (or a CPU or MPU) of thesystem or apparatus. In this case, the program code itself read out fromthe storage medium implements the functions of the above-mentionedembodiments, and the storage medium which stores the program codeconstitutes the present invention.

As the storage medium for supplying the program code, for example, aflexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM,CD-R, magnetic tape, nonvolatile memory card, ROM, and the like may beused.

The functions of the above-mentioned embodiments may be implemented notonly by executing the readout program code by the computer but also bysome or all of actual processing operations executed by an OS running onthe computer on the basis of an instruction of the program code.

Furthermore, the functions of the above-mentioned embodiments may beimplemented by some or all of actual processing operations executed by aCPU or the like arranged in a function extension board or a functionextension unit, which is inserted in or connected to the computer, afterthe program code read out from the storage medium is written in a memoryof the extension board or unit.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2006-043162, filed Feb. 20, 2006, which is hereby incorporated byreference herein in its entirety.

1. A print control apparatus for displaying a print preview on acomputer connected to a printer, comprising: a spool unit adapted tospool print data created by application software; a print processor unitadapted to issue a rendering instruction of the print data spooled bysaid spool unit to a graphic engine together with output informationindicating one of a preview setting and a print setting; a color profiledetermination unit adapted to return a response about one of a colorprofile for previewing when the output information indicates the previewsetting and a color profile for printing when the output informationindicates the print setting, as a response to an inquiry about a colorprofile from the graphic engine that receives the rendering instruction;and a printer driver unit adapted to display image data rendered by thegraphic engine on a screen when the output information indicates thepreview setting, and outputting the image data rendered by the graphicengine to the printer when the output information indicates the printsetting.
 2. The apparatus according to claim 1, wherein the outputinformation is information indicating a resolution of an output device,the preview setting designates a resolution of a display, and the printsetting designates a resolution of the printer.
 3. The apparatusaccording to claim 1, wherein said color profile determination unitreturns a response about a color profile used as a default color profileof the graphic engine as the response to the inquiry from the graphicengine when the output information indicates the print setting.
 4. Theapparatus according to claim 1, wherein said color profile determinationunit returns a response about a color profile, with which an attributethat matches an attribute of an output destination device is associated,of a plurality of color profiles as the response to the inquiry from thegraphic engine.
 5. A print control apparatus comprising: a response unitadapted to return a response to an inquiry about a color profile forprinting without returning any response to an inquiry about a colorprofile for previewing; a preview unit adapted to, when said responseunit does not return any response to the inquiry about the color profilefor previewing, display a preview based on data which has undergonecolor matching using a color profile with a preview resolution, that isfound by a search; and an output unit adapted to, when said responseunit returns the response to the inquiry about the color profile forprinting, output a printer command based on data which has undergonecolor matching using the color profile for printing.
 6. A print controlapparatus comprising: a response unit adapted to return a response to aninquiry about a color profile for printing without returning anyresponse to an inquiry about a color profile for previewing; a previewunit adapted to, when said response unit does not return any response tothe inquiry about the color profile for previewing, display a previewbased on data which has undergone color matching using a default colorprofile of a system; and an output unit adapted to, when said responseunit returns the response to the inquiry about the color profile forprinting, output a printer command based on data which has undergonecolor matching using the color profile for printing.
 7. A print controlmethod for an apparatus which is connected to a printer and can displaya print preview, comprising: a spool step of spooling print data createdby application software; a rendering step of applying color matchingprocessing using a color profile and rendering processing to the printdata spooled in the spool step; a print control step of issuing arendering instruction of the print data spooled in the spool step torendering unit together with output information indicating one of apreview setting and a print setting; a color profile determination stepof returning a response about one of a color profile for previewing whenthe output information indicates the preview setting and a color profilefor printing when the output information indicates the print setting, asa response to an inquiry about a color profile from the rendering unitthat receives the rendering instruction; and an output step ofdisplaying image data rendered by the rendering unit on a screen whenthe output information indicates the preview setting, and outputting theimage data rendered by the rendering unit to the printer when the outputinformation indicates the print setting.
 8. The method according toclaim 7, wherein the output information is information indicating aresolution of an output device, the preview setting designates aresolution of a display, and the print setting designates a resolutionof the printer.
 9. The method according to claim 7, wherein the colorprofile determination step includes a step of returning a response abouta color profile used as a default color profile in the rendering step asthe response to the inquiry from the rendering unit when the outputinformation indicates the print setting.
 10. The method according toclaim 7, wherein the color profile determination step includes a step ofreturning a response about a color profile, with which an attribute thatmatches an attribute of an output destination device is associated, of aplurality of color profiles as the response to the inquiry from therendering unit.
 11. A print control method comprising: a response stepof returning a response to an inquiry about a color profile for printingwithout returning any response to an inquiry about a color profile forpreviewing; a preview step of displaying, when the response step doesnot return any response to the inquiry about the color profile forpreviewing, a preview based on data which has undergone color matchingusing a color profile with a preview resolution, that is found by asearch; and an output step of outputting, when the response step returnsthe response to the inquiry about the color profile for printing, aprinter command based on data which has undergone color matching usingthe color profile for printing.
 12. A print control method comprising: aresponse step of returning a response to an inquiry about a colorprofile for printing without returning any response to an inquiry abouta color profile for previewing; a preview step of displaying, when theresponse step does not return any response to the inquiry about thecolor profile for previewing, a preview based on data which hasundergone color matching using a default color profile of a system; andan output step of outputting, when the response step returns theresponse to the inquiry about the color profile for printing, a printercommand based on data which has undergone color matching using the colorprofile for printing.
 13. A computer-readable recording medium whichrecords a print control program for displaying a print preview on acomputer connected to a printer, said print control program comprising:a spool step of spooling print data created by application software; arendering step of applying color matching processing using a colorprofile and rendering processing to the print data spooled in the spoolstep; a print control step of issuing a rendering instruction of theprint data spooled in the spool step to rendering unit together withoutput information indicating one of a preview setting and a printsetting; a color profile determination step of returning a responseabout one of a color profile for previewing when the output informationindicates the preview setting and a color profile for printing when theoutput information indicates the print setting, as a response to aninquiry about a color profile from the rendering unit that receives therendering instruction; and an output step of displaying image datarendered by the rendering unit on a screen when the output informationindicates the preview setting, and outputting the image data rendered bythe rendering unit to the printer when the output information indicatesthe print setting.
 14. The medium according to claim 13, wherein theoutput information is information indicating a resolution of an outputdevice, the preview setting designates a resolution of a display, andthe print setting designates a resolution of the printer.
 15. The mediumaccording to claim 13, wherein the color profile determination stepincludes a step of returning a response about a color profile used as adefault color profile in the rendering step as the response to theinquiry from the rendering unit when the output information indicatesthe print setting.
 16. The medium according to claim 13, wherein thecolor profile determination step includes a step of returning a responseabout a color profile, with which an attribute that matches an attributeof an output destination device is associated, of a plurality of colorprofiles as the response to the inquiry from the rendering unit.
 17. Acomputer-readable recording medium which records a program for making acomputer execute: a response step of returning a response to an inquiryabout a color profile for printing without returning any response to aninquiry about a color profile for previewing; a preview step ofdisplaying, when the response step does not return any response to theinquiry about the color profile for previewing, a preview based on datawhich has undergone color matching using a color profile with a previewresolution, that is found by a search; and an output step of outputting,when the response step returns the response to the inquiry about thecolor profile for printing, a printer command based on data which hasundergone color matching using the color profile for printing.
 18. Acomputer-readable recording medium which records a program for making acomputer execute: a response step of returning a response to an inquiryabout a color profile for printing without returning any response to aninquiry about a color profile for previewing; a preview step ofdisplaying, when the response step does not return any response to theinquiry about the color profile for previewing, a preview based on datawhich has undergone color matching using a default color profile of asystem; and an output step of outputting, when the response step returnsthe response to the inquiry about the color profile for printing, aprinter command based on data which has undergone color matching usingthe color profile for printing.